import { Injectable } from '@angular/core';
import { ApiService } from '@core/services/http/api.service';
import { exists } from '../../utils/utils';
import { ReuseTabService } from '@shared/apes/reuse-tab';
import { ActivatedRoute } from '@angular/router';
import { MenuService } from '@core';
import { ExpressionService } from '@core/services/expression/ExpressionService';

@Injectable({
  providedIn: 'root',
})

export class CustomService {

  private menu;

  constructor(protected route: ActivatedRoute,
              protected reuseTabService: ReuseTabService,
              protected menuService: MenuService,
              protected expressionService: ExpressionService,
              private apiService: ApiService) {
  }

  // /**
  //  * 功能：权限过滤
  //  * @param {any[]} btnMetadata 所有的操作
  //  * @param callBack 回调
  //  * @returns {any[]}
  //  */
  // public auth(btnMetadata: any, callBack: any): void {
  //   /** 权限操作 **/
  //   let operations = this.getOperations();
  //   let intersection = btnMetadata.filter(metadata => {
  //     if (metadata.id === 'action_submit' || metadata.id === 'action_cancel' || metadata.wf === 'true') {
  //       return true;
  //     }
  //     for (let o of operations) {
  //       if (o.operationId === metadata.id) {
  //         metadata.api = o.api;
  //         metadata.report = o.report;
  //         return true;
  //       }
  //     }
  //   });
  //   callBack(intersection);
  // }
  //
  // /**
  //  * 功能：根据表达式设置按钮可视化
  //  */
  // public setBtnVisible(config:any,callback:any,oaAuth?: string) {
  //   let btnBar = [];
  //   for (let metadata of config.btnBarMetadata) {
  //     let hide = metadata.hide || 'false';
  //     if (config.wfFlag === true) {
  //       if (metadata.wf === 'true' || metadata.id === 'action_cancel') {
  //         if (exists(metadata.auth) && exists(oaAuth) && oaAuth.toUpperCase().indexOf(metadata.auth) == -1) continue;
  //         btnBar.push(metadata);
  //       }
  //     } else {
  //       if (this.expressionService.eval(hide, {
  //         context: config.ctx,
  //         form: config.form,
  //         model: config.model,
  //       }) == false) {
  //         if (metadata.wf === 'false') {
  //           btnBar.push(metadata);
  //         }
  //       }
  //     }
  //   }
  //   callback(btnBar);
  // }
  //
  // /**
  //  * 功能：获取当前页面可操作按钮信息
  //  * @returns {any[]}
  //  */
  // private getOperations(): any[] {
  //   let menu = this.getMenu();
  //   if (menu && menu.operations) {
  //     return menu.operations;
  //   }
  //   return [];
  // }
  //
  // /**
  //  * 功能：获取当前页面菜单信息
  //  * @returns {any}
  //  */
  // private getMenu() {
  //   let curURL = this.reuseTabService.getUrl(this.route.snapshot);
  //   const menus = this.menuService ? this.menuService.getPathByUrl(curURL.replace('/fn/', '/')) : [];
  //   if (!menus || menus.length === 0) return null;
  //   return menus.pop();
  // }

}
